package 程序员面试金典;

public class 翻转数位 {

    public int reverseBits(int num) {
         int index=0,max=0;
        int[] ints = new int[32];
        while (num!=0){
            //说明当前位 为1
            if ((num&1)==1){
                ints[index]++;
            }
            else
                index++;
            num>>>=1;
        }
        for (int i = 0; i < index+1; i++) {
            max=Math.max(max,ints[i]+ints[i+1]+1);
        }
        //最大不能超过32位
        return Math.min(32,max);
    }
}
